/* Este arquivo é parte do OSBiblio.
 * Copyright (C) 2014 (Pedro Saraiva, Túlio Vidal, Luís Henrique, Adriano Lima, Oziel Pereira,
 * Marcos Ellys, Francisco Júnior, Fátima Pinheiro, Darly Vinicio).
 *
 * OSBiblio é um software livre; você pode redistribuí-lo e/ou  modificá-lo dentro dos termos da 
 * Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão 2 da Licença,
 * ou (na sua opinião) qualquer versão.
 *
 * Este programa é distribuído na esperança de que possa ser útil, mas SEM NENHUMA GARANTIA; sem uma garantia 
 * implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU
 * para maiores detalhes.
 */
package br.edu.cheque;

import br.edu.cliente.*;
import br.edu.situacao.*;
import br.edu.banco.*;
import br.edu.situacao.Situacao;
import java.util.*;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author tulio.xcrtf
 */
@SuppressWarnings("serial")
public class ChequeTableModel extends AbstractTableModel {

    private String[] nomeColunas = {"Código", "NrCheque", "Correntista", "Valor", "Data", "Bom Para"};
    private List<Cheque> cheques;

    /**
     * Construtor padrão.
     */
    public ChequeTableModel() {
        //acervos = new LinkedList<Acervo>();
    }

    /**
     * Construtor sobrecarregado.
     *
     * @param list List(Acervo).
     */
    public ChequeTableModel(List<Cheque> lista) {
        //this();
        cheques = new ArrayList(new HashSet(lista));
        Collections.sort(cheques);
        //this.acervos.clear();
        //this.acervos.addAll(lista);
        super.fireTableDataChanged();
    }

    /**
     * Método sobrescrito.
     *
     * @return int.
     */
    @Override
    public int getRowCount() {
        return cheques.size();
    }

    /**
     * Método sobrescrito.
     *
     * @return int.
     */
    @Override
    public int getColumnCount() {
        return nomeColunas.length;
    }

    /**
     * Método sobrescrito.
     *
     * @param rowIndex int
     * @param columnIndex int.
     * @return Object.
     */
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        Cheque cheque = cheques.get(rowIndex);
        switch (columnIndex) {
            case 0:
                return cheque.getId();
            case 1:
                return cheque.getNrcheque();
            case 2:
                return cheque.getCorrentista().getNome();
            case 3:
                return cheque.getValor();
            case 4:
                return cheque.getData();
            case 5:
                return cheque.getBompara();

        }
        return null;
    }

    /**
     * Método sobrescrito.
     *
     * @param column int.
     * @return String nomeColunas[index].
     */
    @Override
    public String getColumnName(int column) {
        switch (column) {
            case 0:
                return nomeColunas[0];
            case 1:
                return nomeColunas[1];
            case 2:
                return nomeColunas[2];
            case 3:
                return nomeColunas[4];
            case 4:
                return nomeColunas[4];
            case 5:
                return nomeColunas[5];

        }
        return null;
    }
}
